﻿/**
* Title:"项目";
*
* Description:
*        功能：
*
* Author:Tongwel
*
* Date:2018.6
*
* Modify:
*/
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Linq;


//泛型
public class BaseProxy<T> where T : BaseModel, new()
{
    protected List<T> modelList;

    //实例化
    public BaseProxy()
    {
        modelList = new List<T>();
    }

    //返回一个布尔值 输入id 有 数据模型就用out 返回出来
    public bool TryGetModel(int id, out T model)
    {
        model = this.modelList.FirstOrDefault(a => a.ID == id);
        if (model == null)
        {
            return false;
        }
        else
        {
            return true;
        }
    }

    //用ID识别返回数据模型
    public T GetModelByID(int id)
    {
        return modelList.FirstOrDefault(a => a.ID == id);
    }

    //刷新数据模型
    public void Update(T model)
    {
        T tempModel = this.GetModelByID(model.ID);
        tempModel = model;
    }

    //返回集合
    public List<T> GetModelList()
    {
        return this.modelList;
    }

    //添加数据模型到集合里
    public void AddModel2List(T model)
    {
        modelList.Add(model);
    }

    public void UpdateModel(T model)
    {
        T tempModel = this.GetModelByID(model.ID);
        tempModel = model;
    }

    //获取最大的id值（递增id值）
    public int GetMaxID()
    {
        if (this.modelList.Count == 0)
        {
            return 0;
        }
        //集合最大
        return this.modelList.Max(a => a.ID);
    }
}
